A nonvolatile semiconductor memory such as a spin-torque-transfer magnetic random access memory (STT-MRAM) comprises, for example, a memory cell including a resistance-change element and a select transistor (field-effect transistor [FET]) which are connected in series. In such a nonvolatile semiconductor memory, data is written by passing a write current through the resistance-change element and read by passing a read current through the resistance-change element.
This means that the write current and the read current are supplied to the resistance-change element through the same path. In this case, the read current should be less than the write current in order to avoid read disturb (erroneous write) when reading data.
Therefore, the nonvolatile semiconductor memory generally comprises two types of drivers: a write driver which produces the write current and a read driver which produces the read current. However, providing such two types of drivers in the nonvolatile semiconductor memory increases the size of a peripheral circuit of the memory cell and the power consumption.